package com.ezcoding.engine;

import com.ezcoding.model.Company;
import com.ezcoding.model.DingdanDetail;
import com.ezcoding.model.Product;
import com.ezcoding.model.UserRelation;

import java.util.List;
import java.util.Map;

public interface DingdanCalculator {

    Company getCompany();

    UserRelation getUserRelation();

    /**
     * 获取订单详情对应的商品列表
     *
     * @return products
     */
    List<Product> getProducts();

    /**
     * 获取订单详情
     *
     * @return details
     */
    List<DingdanDetail> getDetails();

    /**
     * 校验订单详情
     */
    Map<String, Object> checkDingdanDetails();

    /**
     * 计算订单信息，总金额、订单详情应开发票、应付货款等
     */
    void calDingdanInfo();

    /**
     * 更新客供关系数据
     */
    Map<String, Object> updateUserRelation();

    /**
     * 更新企业
     */
    void updateCompanyInfo();

    Map<String, Object> updateRelatedDingdanInfo();
}
